var editor = monaco.editor.create(document.getElementById('container'), {
	value: '{\n\t"dependencies": {\n\t\t\n\t}\n}\n',
	language: 'json'
});

var commandId = editor.addCommand(
	0,
	function () {
		// services available in `ctx`
		alert('my command is executing!');
	},
	''
);

monaco.languages.registerCodeLensProvider('json', {
	provideCodeLenses: function (model, token) {
		return {
			lenses: [
				{
					range: {
						startLineNumber: 1,
						startColumn: 1,
						endLineNumber: 2,
						endColumn: 1
					},
					id: 'First Line',
					command: {
						id: commandId,
						title: 'First Line'
					}
				}
			],
			dispose: () => {}
		};
	},
	resolveCodeLens: function (model, codeLens, token) {
		return codeLens;
	}
});
